package cn.maihe.elg.operation.centers.epoint.dto.handler;

import cn.maihe.elg.operation.centers.epoint.annotation.Decryption;
import cn.maihe.elg.operation.centers.epoint.dto.EpointBaseReqDTO;
import cn.maihe.elg.operation.common.annotation.DateFmt;
import cn.maihe.elg.operation.common.annotation.NumberFmt;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * @Description 保函申请订单
 * @Author Alan
 * @Date 2025/05/29
 */
@Data
public class NDApplyGuaranteeReq extends EpointBaseReqDTO {
    /**
     * 是 投标人联系人姓名（可解密文）
     */
    @NotBlank(message = "投标人联系人姓名不能为空")
    @Decryption
    private String biddercontact;

    /**
     * 是 投标人联系方式（可解密文）
     */
    @NotBlank(message = "投标人联系方式不能为空")
    @Decryption
    private String biddercontacttel;

    /**
     * 是 投标人联系人身份证件号码（可解密文）
     */
    @NotBlank(message = "投标人联系人身份证件号码不能为空")
    @Decryption
    private String biddercontactcard;

    /**
     * 是 投标人地址（可解密文）
     */
    @NotBlank(message = "投标人地址不能为空")
    @Decryption
    private String bidderaddress;

    /**
     * 是 投标人邮箱（可解密文）
     */
    @NotBlank(message = "投标人邮箱不能为空")
    @Decryption
    private String bidderemail;

    /**
     * 是 投标人法定代表人姓名（可解密文）
     */
    @NotBlank(message = "投标人法定代表人姓名不能为空")
    @Decryption
    private String bidderpersonname;

    /**
     * 是 投标人法定代表人联系方式（可解密文）
     */
    @NotBlank(message = "投标人法定代表人联系方式不能为空")
    @Decryption
    private String bidderpersontel;

    /**
     * 是 投标人法定代表人身份证件号码（可解密文）
     */
    @NotBlank(message = "投标人法定代表人身份证件号码不能为空")
    @Decryption
    private String bidderpersoncard;

    /**
     * 是 投标人最高资质名称（可解密文）
     */
    @NotBlank(message = "投标人最高资质名称不能为空")
    @Decryption
    private String bidderhighestqualfication;

    /**
     * 是 投标人基本户开户行（可解密文）
     */
    @NotBlank(message = "投标人基本户开户行不能为空")
    @Decryption
    private String bidderopenbank;

    /**
     * 是 投标人基本户账号（可解密文）
     */
    @NotBlank(message = "投标人基本户账号不能为空")
    @Decryption
    private String bidderbankaccount;

    /**
     * 是 营业执照文件下载地址（可解密文）
     */
    @NotBlank(message = "营业执照文件下载地址不能为空")
    @Decryption
    private String businesslicensefileurl;

    /**
     * 是 法人身份证文件下载地址（可解密文）
     */
    @NotBlank(message = "法人身份证文件下载地址不能为空")
    @Decryption
    private String bidderpersonfileurl;

    /**
     * 是 企业资质文件下载地址（可解密文）
     */
    @NotBlank(message = "企业资质文件下载地址不能为空")
    @Decryption
    private String qualficationfileurl;

    /**
     * 是 企业开户证明下载地址（可解密文）
     */
    @NotBlank(message = "企业开户证明下载地址不能为空")
    @Decryption
    private String openanaccounturl;

    /**
     * 是 特别约定
     */
    @NotBlank(message = "特别约定不能为空")
    private String specialagreement;


    /*保函申请所需字段*/
    /**
     * 是	业务流水号
     */
    @NotBlank(message = "业务流水号不能为空")
    private String applyno;
    /**
     * 是	投标企业名称
     */
    @NotBlank(message = "投标企业名称不能为空")
    private String biddername;
    /**
     * 是	统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空")
    private String biddercode;
    /**
     * 是	标段名称（密文）
     */
    @NotBlank(message = "标段名称不能为空")
    @Decryption
    private String biaoduanname;
    /**
     * 是	标段编号（密文）
     */
    @NotBlank(message = "标段编号不能为空")
    @Decryption
    private String biaoduanno;
    /**
     * 是	保证金金额（元）
     */
    @NotBlank(message = "保证金金额不能为空")
    @NumberFmt(scale = 2)
    private String bzjamount;
    /**
     * 是	招标人（密文）
     */
    @NotBlank(message = "招标人不能为空")
    @Decryption
    private String zbr;
    /**
     * 否	招标人统一社会信用代码（密文）
     */
    @Decryption
    private String zbrorgnum;
    /**
     * 否	项目审批文号（密文）
     */
    @Decryption
    private String approvalcode;
    /**
     * 否	投资项目统一代码（密文）
     */
    @Decryption
    private String projectcode;
    /**
     * 是	项目编号（密文）
     */
    @NotBlank(message = "项目编号不能为空")
    @Decryption
    private String projectno;
    /**
     * 是	项目名称（密文）
     */
    @NotBlank(message = "项目名称不能为空")
    @Decryption
    private String projectname;
    /**
     * 是	合同估算价（元）
     */
    @NotBlank(message = "合同估算价不能为空")
    @NumberFmt(scale = 2)
    private String reckonprice;
    /**
     * 是	招标人银行账号（密文）
     */
    @NotBlank(message = "招标人银行账号不能为空")
    @Decryption
    private String tendererbankcode;
    /**
     * 是	招标人银行开户行（密文）
     */
    @NotBlank(message = "招标人银行开户行不能为空")
    @Decryption
    private String tendereropenbank;
    /**
     * 是	招标人银行账户名称（密文）
     */
    @NotBlank(message = "招标人银行账户名称不能为空")
    @Decryption
    private String tendererbankaccount;
    /**
     * 是	招标人联系人（密文）
     */
    @NotBlank(message = "招标人联系人不能为空")
    @Decryption
    private String tenderercontact;
    /**
     * 是	招标人联系人联系方式（密文）
     */
    @NotBlank(message = "招标人联系人联系方式不能为空")
    @Decryption
    private String tenderercontacttel;
    /**
     * 是	项目所在地（行政区划代码）
     */
    @NotBlank(message = "项目所在地不能为空")
    private String citycode;
    /**
     * 是	招标项目类型
     */
    @NotBlank(message = "招标项目类型不能为空")
    private String projecttype;
    /**
     * 是	保证金截止时间（yyyy-MM-dd HH:mm:ss）（密文）
     */
    @NotBlank(message = "保证金截止时间不能为空")
    @Decryption
    @DateFmt
    private String bzjendtime;
    /**
     * 是	开标时间（yyyy-MM-dd HH:mm:ss）（密文）
     */
    @NotBlank(message = "开标时间不能为空")
    @Decryption
    @DateFmt
    private String kaibiaotime;
    /**
     * 是	投标有效期，单位天
     */
    @NotBlank(message = "投标有效期不能为空")
    @NumberFmt
    private String tbyxq;
    /**
     * 否	招标公告地址（密文）
     */
    @Decryption
    private String tendernoticeurl;
    /**
     * 是	招标文件下载地址（密文）
     */
    @NotBlank(message = "招标文件下载地址不能为空")
    @Decryption
    private String tenderfileurl;

    /**
     * 是 招标人地址（密文） 过渡期暂时部分项目可能没值
     */
//    @NotBlank(message = "招标人地址不能为空")
    @Decryption
    private String zbraddress;
    /**
     * 是招标公告/ 投标邀请书发布时间（ yyyy-MM-dd HH:mm:ss）（密文） 过渡期暂时部分项目可能没值
     */
//    @NotBlank(message = "招标公告发布时间不能为空")
    @Decryption
    private String zbfiledate;

}
